!! 为网友演示在 Fortran 中访问 C 的本地数组变量

!> author: 左志华
!> date: 2022-10-06
program main
    use iso_c_binding
    use demo
    use demo2

    print *, "从 Fortran 读取 C 本地数组的方式 1："
    call init()                                 ! 赋初值 1，2，3
    print *, '值：', x                          ! 从 Fortran 中访问 bind(c) 数组
    call prt()                                  ! 从 C 例程中访问数组

    print *
    print *, "从 Fortran 读取 C 本地数组的方式 2："
    call init2()                                ! 赋初值 4，5，6
    call c_f_pointer(x_in_demo2, x2, shape=[3]) ! 从 C 中访问 bind(c) 数组
    print *, '地址：', x_in_demo2               ! 数组地址，即指针
    print *, '值：', x2                         ! 将 Fortran 数组指针绑定到 C 数组地址
    call prt2()                                 ! 从 C 例程中访问数组

end program main

! 从 Fortran 读取 C 本地数组的方式 1：
! 值：   1.0000000000000000        2.0000000000000000        3.0000000000000000     
! 在 C 中打印：1.000000 2.000000 3.000000
!
! 从 Fortran 读取 C 本地数组的方式 2：
! 地址：        2205703485936
! 值：   4.0000000000000000        5.0000000000000000        6.0000000000000000
! 在 C 中打印：4.000000 5.000000 6.000000
